﻿using System;
using System.Collections.Generic;

public class Inventory
{
    public List<Item> items = new List<Item>();

    public void AddItem(Item item)
    {
        // 查找是否已存在相同 ID 的物品
        Item existingItem = items.Find(i => i.Data.Id == item.Data.Id);

        if (existingItem == null)
        {
            // 如果不存在，则添加新物品
            items.Add(item);
        }
        else
        {
            // 如果存在，则增加数量
            existingItem.ItemInfo.count +=  existingItem.ItemInfo.count; // 假设 item.count 是新物品的数量
        }
    }

    public void RemoveItem(Item item)
    {
        // 根据 ID 移除物品
        Item existingItem = items.Find(i => i.Data.Id == item.Data.Id);

        if (existingItem != null)
        {
            items.Remove(existingItem);
        }
    }

    public void RemoveItem(Item item, int count)
    {
        // 查找相同 ID 的物品
        Item existingItem = items.Find(i => i.Data.Id == item.Data.Id);

        if (existingItem != null)
        {
            existingItem.ItemInfo.count -= count;

            // 确保数量不小于 0
            if (existingItem.ItemInfo.count <= 0)
            {
                existingItem.ItemInfo.count = 0;
                RemoveItem(existingItem); // 物品数量为 0 时移除
            }
        }
    }

    public List<Item> GetItemKind(string kinds)
    {
        //StringComparison.OrdinalIgnoreCase 忽略大小写
        return items.FindAll(item => item.Data.Kinds.Equals(kinds, StringComparison.OrdinalIgnoreCase));
    }
}
